<template>
	<view class="index-cpbox">
		<view class="index-cpbox-header">
			{{title}}
		</view>
		<view class="index-cpbox-main" v-if="page==-1">
			<view class="index-cpbox-main-item">
				<view class="index-cpbox-main-item-title">
					年龄
				</view>
				<view class="index-cpbox-main-item-box">
					<range-slider ballBackground="linear-gradient(170deg, #FFA6B6FF 0%, #FF2E6DFF 100%)" :blockSize="32"
						width="550" step="10" :values="tallRange" max="210" min="160" liveMode="true"
						@rangechange="onchangeTall"></range-slider>
					<view class="u-flex u-row-between" style="font-size: 24rpx;">
						<view class="">
							{{tallRange[0]}}cm
						</view>
						<view class="">
							{{tallRange[1]}}cm
						</view>
					</view>
				</view>
			</view>
			<view class="index-cpbox-main-item">

				<view class="index-cpbox-main-item-title">
					身高
				</view>
				<view class="index-cpbox-main-item-box">
					<range-slider ballBackground="linear-gradient(170deg, #FFA6B6FF 0%, #FF2E6DFF 100%)" :blockSize="32"
						width="550" step="10" :values="tallRange" max="210" min="160" liveMode="true"
						@rangechange="onchangeTall"></range-slider>
					<view class="u-flex u-row-between" style="font-size: 24rpx;">
						<view class="">
							{{tallRange[0]}}cm
						</view>
						<view class="">
							{{tallRange[1]}}cm
						</view>
					</view>
				</view>
			</view>
		</view>
		<view class="index-cpbox-footer u-flex" v-if="page==-1">
			<view class="index-cpbox-footer-item public-btn" @click="nextQuestion()">
				MBTI测试
			</view>
			<view class="index-cpbox-footer-item public-btn public-btn-color" @click="$Router.push({path:'/pages/index/CP/index-cproundpage'})">
				开始匹配
			</view>
		</view>
		<view class="index-cpbox-swiper">
			<view class="index-cpbox-swiper-item" v-if="page==index" v-for="(item,index) in questionList">
				<view class="index-cpbox-swiper-item-title">
					{{index+1+'.'}}{{item.title}}
				</view>
				<view class="public-btn" v-for="(v,i) in item.answer" @click="nextQuestion()">
					{{i+1+'.'}}{{v.value}}
				</view>
			</view>
		</view>
		<view class="index-cpbox-close" v-if="page!=-1" @click="quit()">
			跳过测试
		</view>
	</view>
</template>

<script>
	//这里可以导入其他文件（比如：组件，工具js，第三方插件js，json文件，图片文件等等）
	import rangeSlider from '../../ex-components/range-slider/range-slider.vue'
	export default {
		// 组件名称
		name: 'demo',
		// 组件参数 接收来自父组件的数据
		props: {
			title: {
				type: String,
				value: '筛选'
			}
		},
		// 局部注册的组件,import引入的组件需要注入到对象中才能使用
		components: {
			rangeSlider
		},
		// 组件状态值
		data() {
			return {
				page: -1, //0 开始测试页面  123测试页面
				tallRange: [150, 190],
				questionList: [{
					id: 1,
					title: '如果物质是由量子粒子构成的，那么能量是由什么构成的？',
					answer: [{
						id: 11,
						value: '整体来说很健谈'
					}, {
						id: 12,
						value: '较安静并保留'
					}]
				}, {
					id: 2,
					title: '在约会中，你通常会怎样？',
					answer: [{
						id: 21,
						value: '整体来说很健谈'
					}, {
						id: 22,
						value: '较安静并保留'
					}]
				}, {
					id: 3,
					title: '江豚为什么叫「江猪」？？',
					answer: [{
						id: 31,
						value: '整体来说很健谈'
					}, {
						id: 32,
						value: '较安静并保留'
					}]
				}, ]
			}
		},
		// 计算属性
		computed: {},
		// 侦听器
		watch: {},
		// 组件方法
		methods: {
			onchangeTall(e) {
				this.tallRange = [e.minValue, e.maxValue];
			},
			nextQuestion() {
				console.log(this.page)
				if (this.page > this.questionList.length - 2) {
					this.quit()
				} else {

					this.page += 1;
				}
			},
			quit() {

				this.$emit('close')
				this.page = -1;
			}
		},
		// 以下是生命周期钩子   注：没用到的钩子请自行删除
		/**
		 * 在实例初始化之后，组件属性计算之前，如data属性等
		 */
		beforeCreate() {},
		/**
		 * 组件实例创建完成，属性已绑定，但DOM还未生成，$ el属性还不存在
		 */
		created() {},
		/**
		 * 在挂载开始之前被调用：相关的 render 函数首次被调用。
		 */
		beforeMount() {},
		/**
		 * el 被新创建的 vm.$ el 替换，并挂载到实例上去之后调用该钩子。
		 * 如果 root 实例挂载了一个文档内元素，当 mounted 被调用时 vm.$ el 也在文档内。
		 */
		mounted() {},
		/**
		 * 数据更新时调用，发生在虚拟 DOM 重新渲染和打补丁之前。
		 * 你可以在这个钩子中进一步地更改状态，这不会触发附加的重渲染过程。
		 */
		beforeUpdate() {},
		/**
		 * 由于数据更改导致的虚拟 DOM 重新渲染和打补丁，在这之后会调用该钩子。
		 * 当这个钩子被调用时，组件 DOM 已经更新，所以你现在可以执行依赖于 DOM 的操作。
		 */
		updated() {},
		/**
		 * keep-alive 组件激活时调用。 仅针对keep-alive 组件有效
		 */
		activated() {},
		/**
		 * keep-alive 组件停用时调用。 仅针对keep-alive 组件有效
		 */
		deactivated() {},
		/**
		 * 实例销毁之前调用。在这一步，实例仍然完全可用。
		 */
		beforeDestroy() {},
		/**
		 * Vue 实例销毁后调用。调用后，Vue 实例指示的所有东西都会解绑定，
		 * 所有的事件监听器会被移除，所有的子实例也会被销毁。
		 */
		destroyed() {}
	}
</script>

<!-- Add "scoped" attribute to limit CSS to this component only -->
<!--使用了scoped属性之后，父组件的style样式将不会渗透到子组件中，-->
<!--然而子组件的根节点元素会同时被设置了scoped的父css样式和设置了scoped的子css样式影响，-->
<style scoped lang="scss">
	.index-cpbox {
		padding: 0 32rpx;
		margin-bottom: 32rpx;

		&-header {
			height: 160rpx;
			font-size: 32rpx;
			font-family: PingFang SC-Bold, PingFang SC;
			font-weight: bold;
			color: #2E3033;
			line-height: 160rpx;
			text-align: center;
		}

		&-main {
			&-item {
				margin-bottom: 32rpx;

				&-title {
					font-size: 28rpx;
					font-family: PingFang SC-Medium, PingFang SC;
					font-weight: 500;
					color: #2E3033;
				}
			}
		}

		&-swiper {
			display: flex;
			justify-content: center;

			&-item {
				display: flex;
				justify-content: center;
				flex-direction: column;

				.public-btn {
					margin: 32rpx 0;
					width: 430rpx;

				}

				&-title {
					max-width: 450rpx;
					font-size: 32rpx;
					font-family: PingFang SC-Bold, PingFang SC;
					font-weight: bold;
					color: #2E3033;
				}
			}
		}

		&-close {
			font-size: 24rpx;
			font-family: PingFang SC-Medium, PingFang SC;
			font-weight: 500;
			color: #737780;
			text-align: center;
		}

		&-footer {
			justify-content: center;

			&-item {
				margin: 32rpx 0;
				margin-right: 32rpx;

				width: 220rpx;

				&-title {
					font-size: 28rpx;
					font-family: PingFang SC-Medium, PingFang SC;
					font-weight: 500;
					color: #2E3033;

				}
			}
		}
	}
</style>
